#include "setpython.hh"
#include <fstream>
#include <iostream>

std::string version="3.7";

std::string getpyversion()
{
     return version;
}


int changepython(std::string cmd,std::string v)                  //下命令可查看python可执行文件版本:strings -a program_name | grep -i python
{                                                             //证明替换后确实采用不同python版本编译
    int index;
    std::string target="python";
    std::string last,ft;
    std::string::size_type position;
    position=cmd.find(target);
    if (position == std::string::npos)
    {
         return 0;

    }
    else
    {    index=position+6;
         last=cmd.substr(index, cmd.length());
         ft=cmd.substr(0, position);
         std::system((ft+"python-"+v+last).c_str());
         std::cout<<"ok";                                     //测试用
         return 1;
    }
    return 0;

}
int installpython(std::string v)
{               
     std::cout<<"开始安装python"<<std::endl;
    // std::cout<<("conda create --name p_v"+v+ " python="+v).c_str()<<std::endl;
     std::system(("conda create --name p_v"+v+ " python="+v).c_str());
     //记录版本号
     

     return 1;
}

void runpython(std::string name)
{
     std::system(("~/miniconda3/envs/p_v3.7/bin/python "+ name).c_str());
}

// 参数: python 虚拟环境的名字
// 功能: 执行此函数后, 下次输入"python"时, 将默认进入这个虚拟环境对应的python
// 输出: 成功: SUCCESS, 失败 FAIL
int envset(std::string envName)
{
     version = envName.substr(envName.length()-3,envName.length());
     return 0;
}